#define QERROR_HOSTNAME_LOOKUP -21 /* Hostname lookup of server failed */
#define QERROR_ABORTED -22 /* TCP thread got a control-C */
#define QERROR_NO_SERVER -23 /* No AMarquee server at requested host/port */
#define QERROR_NO_INETD -24 /* The program wasn't launched by inetd */
#define QERROR_ACCESS_DENIED -25 /* The server wouldn't accept our connection */
#define QERROR_NO_MEMORY -26 /* The client is out of memory */
#define QERROR_NO_TCPSERVER -27 /* No server at requested host/port */
/* Flags to use with QGo() */
#define QGOF_SYNC (1<<0) /* Request notification via sync packet when all has settled on the server side */
#define QGOF_NOTIFY (1<<1) /* Request notification via QERROR_SEND_DONE message when the TCP thread has finished sending this transaction (new for v47) */
/* Flags representing special privileges; used with QRequestPrivileges(), etc */
#define QPRIV_KILLCLIENTS (1<<0) /* license to kill! */
#define QPRIV_ADMIN (1<<1) /* Ability to set env vars, etc, on the server */
#define QPRIV_GETSYSMESSAGES (1<<2) /* Ability to receive special sysadmin messages */
#define QPRIV_SENDSYSMESSAGES (1<<3) /* Ability to send special sysadmin messages */
#define QPRIV_ALL ( $0F) /* all possible QPRIV_* bits */
OBJECT QSession
qMsgPort:PTR TO MsgPort /* Wait() on this for QMessages! */
/* All events from AMarquee come in this package! */
OBJECT QMessage
Msg:Message, /* Don't directly use the contents of qm_Msg! */
ID:LONG, /* Message ID # of transaction related to this opCode, or -1 if no ID is applicable. */
Status:LONG, /* One of the QERROR_* codes defined in AMarquee headers. */
Path:PTR TO UBYTE, /* Pathname of a node, or NULL if not applicable. */
Data:VOID, /* Pointer to beginning of data buffer, or NULL if not applicable. */
DataLen:ULONG, /* Length of qm_Data buffer, or 0 if not applicable. */
ActualLen:ULONG, /* Length of the data buffer stored on the AMarquee server. */
ErrorLine:ULONG, /* Line # of the server source code that generated the error. Useful for debugging. */
Private:VOID, /* Private info used by FreeQMessage() */
Private2:VOID, /* Added for v48; more private info used by FreeQMessage() */
Session:PTR TO QSession /* Added for v50. The session this message comes from. Necessary with shared msgports */
OBJECT QRunInfo
Allowed:LONG, /* The theoretical maximum number of bytes your server may allocate. */
Alloced:LONG, /* The number of bytes currently allocated by your server. */
Avail:LONG, /* The number of bytes that may actually be allocated by your server. */
CurrentPrivs:ULONG, /* Bit-chord of QPRIV_* bits, showing what special privs you have. */
PossiblePrivs:ULONG /* Bit-chord of QPRIV_* bits, showing what special privs you could get if you asked. */
OBJECT QSharedMessagePort
private:SignalSemaphore, /* Used internally */
mp:PTR TO MsgPort /* the message port to listen on */
/* the QRAWSESSION_PROTOCOLSTOPHOOK Hook function receive a pointer to the Hook in A0, the QSession
pointer in A2 and a pointer to a QProtocolStopMarkerMessage in A1. Return the length of the buffer
to send to the client. Return a length of 0 if not enough data is present. With this function
it's easy to make sure that no structs or other datatypes get stripped. */
OBJECT QProtocolStopMarkerMessage
buffer:PTR TO UBYTE,
length:ULONG,
userdata:ULONG,
id:LONG
/* Tags to use with QNewSocketSession(Async) */
#define QRAWSESSION_MAXBUFFERSIZE $a0000001 /* (ULONG maxBufSize) The maximum buffer size to use (same as QSetMaxRawBufSize()) */
#define QRAWSESSION_PROTOCOLSTOPHOOK $a0000002 /* (struct Hook *stopmarkerfunc) A hook with the function which sets the stop marker for a block of data */
#define QRAWSESSION_RECEIVE_EXCEEDING_DATA $a0000003 /* (BOOL b) default TRUE. Shall the last data before the connection is broken be sent to the client even though the PROTOCOLSTOPHOOK hook specify it shouldn't ?*/
#define QRAWSESSION_PROTOCOLSTOPHOOK_USERDATA $a0000004 /* (ULONG u) The initial value of the userdata field in struct QProtocolStopMarkerMessage */
/* Tags to use with QNew*Session(Async) and QNewSocket*Session(Async) */
#define QSESSION_ERRORCODEPTR $b0000001 /* (LONG *errorCode) A pointer to the variable that will hold the error code */
#define QSESSION_SHAREDMSGPORT $b0000002 /* (struct QSharedMessagePort *mp) A shared message port created with QCreateSharedMessagePort() */